import re

# 原生字符
# re_obj = re.search('abc', 'helloabcdef')
# print(re_obj)

# 元字符
#   .匹配任意1个字符(除了\n)
# print(re.search('he.', 'hello').group())
# print(re.search('he.', 'he-llo').group())
# print(re.search('he.', 'he/llo').group())
# print(re.search('he.', 'he\nllo'))  # 匹配不到

# [ ]pipei[ ]中列举的字符
# print(re.search('he[123456abc=sa]', 'he2').group())
# print(re.search('he[123456abc=sa]', 'hea').group())
# print(re.search('he[123456abc=sa]', 'he+').group())
# print(re.search('he[0-9a-zA-Z]', 'hexxx').group())  # 不能匹配
# print(re.search('he[0-9a-zA-Z]', 'heFxx').group())
# print(re.search('he[0-9a-zA-Z]', 'he1030').group())

# \d匹配数字,即0-9 = [0-9]
# print(re.search('he\d', 'he1').group())
# print(re.search('he\d', 'he0').group())
# print(re.search('he[0-9]', 'he1').group())
# print(re.search('he[0-9]', 'hea').group())  # 不能匹配

# \D匹配非数字,即不是数字
# print(re.search('he\D', 'hea').group())
# print(re.search('he\D', 'he-').group())
# print(re.search('he\D', 'he<>').group())
# print(re.search('he\D', 'he1').group())     # 不能匹配

# \s匹配空白,即 空格 tab键
# print(re.search('he\s', 'he dfdsh').group())
# print(re.search('he\s', 'he dfdsh').group())
# print(re.search('he\s', 'he\dfdsh').group())    # 不能匹配
# print(re.search('he\s', 'he\cfdsh').group())    # 不能匹配
# print(re.search('he\s', 'he12dfdsh').group())   # 不能匹配

# \w匹配非特殊字符，即a-z、A-Z、0-9、_、汉字　　［a-zA-Z0-9_\u4e00-\u9fa5］
print(re.search('he\w', 'hexx').group())
print(re.search('he\w', 'he你好').group())
print(re.search('he\w', 'he12').group())
print(re.search('he\w', 'he*').group())     # 不能匹配
print(re.search('[\u4e00-\u9fa5][\u4e00-\u9fa5]', '123天气').group())
print(re.search('he\w\w', 'he1ss').group())
